前言
在使用 Anki 官方的同步服务器时,时常遇到连接超时以及同步速度过慢的情况,好在从官方文档 sync-server 中可知,从 2.1.57+ 版本开始的桌面版 Anki 已经内置了同步服务器,只需要简单的几行命令就可以创建一个私人同步服务。
开始
下载桌面版 Anki
考虑到市面上大部分服务器都基于 Linux 发行版所以该教程也只介绍如何在 Linux 系统中进行部署
首先检查自己的 Linux 系统版本以及CPU架构
uname -a
根据终端输出系统版本及架构的选择最适合自己的安装包
在这里我们选 linux-qt5.tar.zst
为后缀的压缩包来安装,可以看到文件格式是 tar.zst,这是 Facebook推出的一种无损压缩格式,全称 Zstandard (ZSTD) ,压缩率更大速度更快,但是需要安装 ZSTD
才能解压。
考虑到该教程主要介绍如何搭建专属于自己的anki服务器,所以不展开讲述 ZSTD 安装相关步骤。
先下载 anki-2.1.57-linux-qt5.tar.zst
或者以上版本的压缩包
我们就先在 windows 系统的电脑上先解压 tar.zst 格式的资源,再用tar进行打包上传到 Linux 服务器来简化这一步
tar -zcvf anki-2.1.57-linux-qt5.tar.gz anki-2.1.57-linux-qt5
将重新压缩好的资源上传到 Linux 服务器并选择合适的目录进行解压,解压完成后进入项目根目录
运行同步服务器
输入以下指令测试 Anki 服务器是否成功启动
SYNC_USER1=YourUsername:YourPassword ./anki-2.1.57-linux-qt5/anki --syncserver
如果弹出以下内容则证明服务器启动成功
INFO listening addr=0.0.0.0:8080
待打开对应端口的防火墙后测试服务器是否能正常连接
启动 Anki 客户端 —— 在客户 端打开设置 —— 网络 —— 输入你的服务器ip+端口
保存后尝试使用 SYNC_USER1
里面的账号与密码进行登录
如果登录成功则私人同步服务器运行成功
使用守护进程持久运行
考虑到同步服务器需要在服务器后台保持常驻,所以我们使用PM2进行进程守护:
//ecosyste.config.js
module.exports = {
apps: [{
name: "anki-server",
script: "./anki-2.1.57-linux-qt5/anki --syncserver",
env: {
SYNC_PORT: 8080,
SYNC_USER1: "YourUsername:YourPassword",
},
out_file: "./logs/anki-server.log",
}]
}
将 ecosyste.config.js
文件放到 anki 服务器文件根目录,并输入以下指令启动
pm2 start ecosyste.config.js
这样我们的 Anki 私人同步服务器就部署完成了。
使用域名作为地址
如果你想要用域名作为地址你可以使用 nginx 进行代理转发
server {
listen 443 ssl;
server_name yourdomain.com;
root html;
index index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}